import Vue from 'vue'

// base.css 样式的重置 * {m0+p0}
import 'normalize.css/normalize.css'

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
// Vue.use(ElementUI)

// 拿到i18n插件的实例
import i18n from '@/lang'

// 配置ElementUI的中英切换逻辑
Vue.use(ElementUI, {
  // 中文模式下 中文包, 英文模式 英文包
  i18n: (key, value) => i18n.t(key, value)
})

// 引入英文语言包
// import locale from 'element-ui/lib/locale/lang/en'
import '@/styles/element-variables.scss'

import '@/styles/index.scss'

import App from './App'
import store from './store'
import router from './router'

import '@/icons' // icon
import '@/permission' // permission control

// 导入自定义指令们 并且全局注册
import * as directives from './directives'

// 封装了一个插件, 帮我们全局注册组件
import components from '@/components'

// 导入过滤器们 并且全局注册
import * as filters from '@/filters'

// 装包 => 导包 => 安装插件(Vue.use) => 使用(v-print)
// 1. 给你要打印的盒子写个id
// 2. 给你的打印按钮 写个 v-print
import Print from 'vue-print-nb'
// {
//   install(Vue) {
//     Vue.directive('print',{
//       inserted(){

//       }
//     })
//   }
// }
Vue.use(Print)

Object.keys(directives).forEach(item => Vue.directive(item, directives[item]))

// Vue.use => 插件内的install方法调用
Vue.use(components)

Object.keys(filters).forEach(item => {
  Vue.filter(item, filters[item])
})

Vue.config.productionTip = false

// render 渲染函数
// h => createElement 创建节点

new Vue({
  // el: '#app',
  router,
  store,
  render(createElement) {
    return createElement(App)
  },
  i18n
}).$mount('#app')
